// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.

package org.jetbrains.kotlin.idea.k2.debugger.test.cases;

import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginMode;
import org.jetbrains.kotlin.idea.base.test.TestRoot;
import org.jetbrains.kotlin.idea.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.idea.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;
import org.jetbrains.kotlin.test.TargetBackend;

/**
 * This class is generated by {@link org.jetbrains.kotlin.testGenerator.generator.TestGenerator}.
 * DO NOT MODIFY MANUALLY.
 */
@SuppressWarnings("all")
@TestRoot("jvm-debugger/test/k2")
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("../testData/evaluation/multiplatform")
public class K2IdeK2MultiplatformCodeKotlinEvaluateExpressionTestGenerated extends AbstractK2IdeK2MultiplatformCodeKotlinEvaluateExpressionTest {
    @java.lang.Override
    @org.jetbrains.annotations.NotNull
    public final KotlinPluginMode getPluginMode() {
        return KotlinPluginMode.K2;
    }

    private void runTest(String testDataFilePath) throws Exception {
        KotlinTestUtils.runTest(this::doMultipleBreakpointsTest, this, TargetBackend.JVM_IR_WITH_IR_EVALUATOR, testDataFilePath);
    }

    @TestMetadata("classMethod.kt")
    public void testClassMethod() throws Exception {
        runTest("../testData/evaluation/multiplatform/classMethod.kt");
    }

    @TestMetadata("diamond.kt")
    public void testDiamond() throws Exception {
        runTest("../testData/evaluation/multiplatform/diamond.kt");
    }

    @TestMetadata("differentCommons.kt")
    public void testDifferentCommons() throws Exception {
        runTest("../testData/evaluation/multiplatform/differentCommons.kt");
    }

    @TestMetadata("evaluateInCommonCode.kt")
    public void testEvaluateInCommonCode() throws Exception {
        runTest("../testData/evaluation/multiplatform/evaluateInCommonCode.kt");
    }

    @TestMetadata("evaluateWithIntermediateJvm.kt")
    public void testEvaluateWithIntermediateJvm() throws Exception {
        runTest("../testData/evaluation/multiplatform/evaluateWithIntermediateJvm.kt");
    }

    @TestMetadata("funWithDefaultArgument.kt")
    public void testFunWithDefaultArgument() throws Exception {
        runTest("../testData/evaluation/multiplatform/funWithDefaultArgument.kt");
    }

    @TestMetadata("functionBreakpointInCommonCode.kt")
    public void testFunctionBreakpointInCommonCode() throws Exception {
        runTest("../testData/evaluation/multiplatform/functionBreakpointInCommonCode.kt");
    }

    @TestMetadata("inlineFunWithDefaultArgument.kt")
    public void testInlineFunWithDefaultArgument() throws Exception {
        runTest("../testData/evaluation/multiplatform/inlineFunWithDefaultArgument.kt");
    }

    @TestMetadata("inlineInCommonModule.kt")
    public void testInlineInCommonModule() throws Exception {
        runTest("../testData/evaluation/multiplatform/inlineInCommonModule.kt");
    }

    @TestMetadata("interface.kt")
    public void testInterface() throws Exception {
        runTest("../testData/evaluation/multiplatform/interface.kt");
    }

    @TestMetadata("ktij21854.kt")
    public void testKtij21854() throws Exception {
        runTest("../testData/evaluation/multiplatform/ktij21854.kt");
    }

    @TestMetadata("object.kt")
    public void testObject() throws Exception {
        runTest("../testData/evaluation/multiplatform/object.kt");
    }

    @TestMetadata("typealiasFromCommonCode.kt")
    public void testTypealiasFromCommonCode() throws Exception {
        runTest("../testData/evaluation/multiplatform/typealiasFromCommonCode.kt");
    }
}
